//
//  NSString+Extend.h
//  TQProduction
//
//  Created by LuPengDa on 15/6/11.
//  Copyright (c) 2015年 CTTQ. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSString (Extend)
#pragma mark - base64
/**
 *  base64加密
 */
- (NSString *)encodeBase64;
/**
 *  base64解密
 */
- (NSString *)decodeBase64;

#pragma mark - MD5

/**
 *  MD5加密
 */
- (NSString *)md5;

/**
 *  是否是有效的手机号码
 */
+ (BOOL) isValidateMobile:(NSString *)mobile;
#pragma mark - Localizable

+ (instancetype)localizedStringWithKey:(NSString *)key comment:(NSString *)comment;

#pragma mark - size

/**
 *  计算单行的字符串所占大小
 *
 *  @param font 字体
 *
 *  @return CGSize
 */
- (CGSize)sizeWithMyFont:(UIFont *)font;

/**
 *  计算多行的字体所占大小
 *
 *  @param font 字体
 *  @param size 限制大小
 *
 *  @return CGSize
 */
- (CGSize)sizeWithMyFont:(UIFont *)font constrainedToSize:(CGSize)size;

#pragma mark - Compare

/**
 *  与一个版本号进行比较
 *
 *  @param version 版本号：@"1.2.3"
 *
 *  @return NSOrderedAscending:小于version；NSOrderedSame：等于version；NSOrderedDescending：大于version
 */
- (NSComparisonResult)compareWithVersion:(NSString *)version;

/**
 *  当前系统与与指定系统比较
 *
 *  @param systemVersion 指定系统版本号
 *
 *  @return NSOrderedAscending:小于systemVersion；NSOrderedSame：等于systemVersion；NSOrderedDescending：大于systemVersion
 */
+ (NSComparisonResult)compareWithSystemVersion:(NSString *)systemVersion;

- (BOOL)TQContainsString:(NSString *)str;

@end

@interface NSObject (TQExtend)

/**
 *  判断是否为空（nil, null & NSNull & @""）
 *
 *  @return 为空返回YES
 */
- (BOOL)isEmpty;

/**
 *  判断是否为空（nil, null & NSNull & @""）
 *
 *  @param obj 对象
 *
 *  @return 为空返回YES
 */
BOOL isEmpty(id obj);

/**
 *  输出非空的字符串
 *
 */
NSString *toString(id obj);

//获取中间字符串-（根据开始和结束字符串截取）
-(NSString*)GetStringRangefirst:(NSString*)firststring laststring:(NSString*)laststring TargetString:(NSString*)string;
//当前版本和线上版本比较，有没有新版本
-(BOOL)hasUpdateonLineVersion:(NSString *)onlineVersion currentVersion:(NSString *)currentVersion;
//当前版本是不是比线上最新版本还新
-(BOOL)isBigThanOnlineVersion:(NSString *)currentVersion onlineVersion:(NSString *)onlineVersion;

@end
